////引用型返回值
//#include <iostream>
//
//using namespace std;
//
//int g_vaue = 0;
//
//int &fun() { //非常引用型返回值：通过它可以修改目标
//    return g_vaue;
//}
//
//const int &func() {//常引用型返回值，不能修改目标
//    return g_vaue;
//}
//
//int &bar() {
//    static int s_value = 0; //这行代码在程序启动时执行，而且只执行一次
//    cout << "s_value = " << s_value << endl;
//    return s_value;
//}
//
//int &hum() {
//    int *p = new int;
//    return *p;
//}
//
//int &foo(int &x) {
//    return x;
//}
//
//int &boo() {
//    int m = 666;
//    return m;//返回局部变量引用
//}
//
//int main(void) {
//    fun() = 100;
//    cout << "g_value = " << g_vaue << endl;
//    bar() = 200;
//    bar();
//
//    hum() = 300;
//    int a_value = 0;
//    foo(a_value) = 400;
//    cout << "a_value = " << a_value << endl;
////    boo();
////    func() = 100;//error
//    return 0;
//}